#include "msg_queue_peer.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include "common.h"

int main() {
    printf("测试消息队列发送程序\n");
    printf("------------------------------------------\n");

    // 测试数据（模拟控制命令）
    int test_cases[][2] = {
        {101, 25},  // 设置温度=25
        {102, 1},    // 打开空气开关
        {103, 0},    // 关闭模式开关
        {104, 1},    // 打开喷雾开关
        {105, 0}     // 关闭消毒开关
    };

    for (int i = 0; i < 5; i++) {
        struct control_msg msg = {
            .mtype = MSG_TYPE_CONTROL,
            .key = test_cases[i][0],
            .value = test_cases[i][1]
        };

        printf("发送消息: key=%d, value=%d\n", msg.key, msg.value.i_val);
        
        // 发送消息
        int ret = msg_queue_send("device_control", &msg, sizeof(msg), 0);
        if (ret < 0) {
            perror("msg_queue_send 失败");
            printf("错误代码: %d (%s)\n", errno, strerror(errno));
        } else {
            printf("发送成功！\n");
        }

        sleep(1);  // 间隔1秒发送下一条
    }

    printf("测试数据发送完毕！\n");
    return 0;
}